当前位置: 首页 >文章 > iOS 11 设计规范 | 第二章 App 架构
收藏
分享

iOS 11 设计规范 | 第二章 App 架构

举报酸梅干超人酸梅干超人发布于 2018-08-032202阅读1点赞
iOS 提供了大量的辅助功能来帮助视力障碍、听力障碍以及其他残疾人群体。大部分以 UIKit 为基础的App都有容易上手的特点,这样就可以让更多人在使用App时拥有更平等、良好的用户体验。...


iOS 提供了大量的辅助功能来帮助视力障碍、听力障碍以及其他残疾人群体。大部分以 UIKit 为基础的App都有容易上手的特点,这样就可以让更多人在使用App时拥有更平等、良好的用户体验。

为图片、图标和界面元素提供可选择的文本标签:文本备注在屏幕上是不可见的,但是能被 VoiceOver 读出来,让视障人士可以轻松导航。

相应辅助功能的偏好设置:如果你的App 使用了 UIKit,那么用户界面、文本、界面元素就会自动调整至你的偏好设置,例如自动加粗并且放大文字(译者注:iOS 设置中的字号设置)。当 “减弱动态效果” 的开关被打开,你的 App 也会适时检查并响应辅助功能的偏好设置。并且 App 所采用的自定义字体要和系统字体相匹配。

测试App的辅助功能:除了文字和动效的变化,辅助选项还能改变对比度、反转颜色、降低透明度等。当用户启用辅助功能时,可以观察到 App 在开启辅助功能后是如何表现和运作的。

包含隐藏式字幕(译者注:电视字幕)和口述影像:隐藏式字幕有助于听障以及听觉不灵敏的用户,观看视频中的对话和其它音频内容。口述影像为视力受损的用户提供了重要视频的口头解说。


2.2 加载


当内容在加载时,一片空白静止的屏幕,让你的App好像被冻结了一样,不仅让用户感到困惑和失望,而且很有可能会使用户离开你的App。


要清晰的表明加载的状态:至少,展示一个动态旋转图来表明有任务正在进行中。更好的做法是,显示更清晰明确的加载进度,这样用户就能知道他们还需等待多久。

加快显示内容的速度:不要让用户等着且只看到加载进度,要尽快显示内容,可以通过占位符、图形或者动画,表明哪些内容还未加载完成。当内容加载成功后,替换掉之前的占位元素。有可能的话,在播放动画或用户操作菜单、导航的过程中,就提前在后台预加载要显示的内容。

通过启发或娱乐用户来填充加载的过程:尝试一下展示游戏秘籍、娱乐性的动画或者其他有趣的占位图。


自定义加载画面:尽管有标准化的进度指示,但它们有时会不符合当前的使用场景。这时设计符合你的 App 或游戏风格的自定义动画和元素,可以实现更具沉浸式的使用环境。


2.3 模态框


模态框——是让用户只有在完成当前的任务或关闭一个信息或页面之后,才能去做其它的事情。操作列表、警告和动作视图都提供了模态框。当屏幕上出现模态框时,用户必须通过点击按钮或是其它特殊方式才能退出。例如在日历中编辑事件或是在Safari浏览器中选择书签。模态框可以占据整个屏幕、整个上级视图(比如气泡弹出框)、或者屏幕的一部分。模态框通常有 “完成” 和 “取消” 按钮来退出视图。



尽量减少模态框的使用:一般来说,用户更喜欢与App进行非线性的交互。只在必须要引起用户注意时、某个任务必须被完成或是主动关闭时、保存重要数据时才考虑使用模态框。

提供一个明显且安全的方式,退出模态框:确保用户在关闭模态框时,知道会导致的结果。

保持模态框的简单、简短且集中:不要在你的 App 中创建另一个 App。如果一个模态框太复杂,当用户看到时,就会忽略他们之前暂停的任务。当创建一个包含多层级视图的模态框时,请格外谨慎,因为用户可能不知道如何返回原先的步骤。如果模态框必须含有子视图,那就提供单级的跳转路径以及清楚的 “完成” 路径。避免在完成任务之外的地方使用 “完成” 按钮。

请尽量使用能够明确说明任务的标题:你还可以在视图的其它部分,更全面描述任务或者提供指示文本。

只有在传达关键以及需要操作的信息时才使用警告弹窗:警告弹窗会中断用户操作,并且需要点击才能关闭,所以要让用户认为这个打断是有必要的。

了解更多,请参阅Alerts


尊重用户的推送通知偏好设置:在设置里,用户明确规定了他们想要如何接收来自你 App 的推送通知。App要遵循这些个人偏好,才不会让用户直接完全关闭掉你的推送。

不要在弹出框上方显示模态框:除了警告框,其他任何元素都不应该覆盖在弹出框之上。在极少数情况下,用户完成弹出框的指示后,还会显示模态框。那么,请先关闭弹出框,再展示模态视图。

让模态框的视觉风格与你的App相符:一个模态视图可能包含导航栏。在这种情况下,请使用与你App内的导航栏一样的视觉外观。

选择合适的模态框样式。你可以使用到以下任何一种样式:



全屏模式:覆盖整个屏幕。用于可以在模态视图中完成的较复杂的任务。(左)


页面模式:在大屏设备的横屏摆放时,模态框覆盖了部分内容,而未被遮盖的区域被模糊化处理,避免用户与之交互。在小屏设备的竖屏时覆盖整个屏幕,用于在模态框中完成的复杂的任务。(右)


表单模式:显示在屏幕中心,但是当键盘可见时,可能会改变位置。所有未被遮盖的区域被模糊处理,避免用户与之交互。可能会在小屏设备中覆盖整个屏幕,便于收集信息。(左)


当前视图模式:与上级视图大小一致。用于拆分视图窗口、弹出窗口或其他非全屏视图中显示模态内容。(右)

选择合适的过渡方式来显示模态框:使用与App风格相符的过渡方式,来加强用户对当前内容转变的认知。默认的过渡方式让模态框垂直地从屏幕底部向上滑出,然后在被关闭时向下滑。弹出样式是指模态框水平滑出,显示信息,看起来就好像模态框隐藏在当前视图的背后。当模态框被关闭时,原先的视图便重新滑回来。在你的App内部要使用统一的模态过渡方式。

了解更多模态框的实现方法,请参阅UIViewController和UIPresentationController。


2.4 导航(Navigation)


在一个 App 的导航栏达不到用户的预期时,他们往往是意识不到的。你的工作就是在不引起注意的情况下,创造一种能够适应结构和目的的导航。导航应该让用户觉得自然和熟悉,并且不应该主导界面或者抢走页面内容的风头。在iOS,主要有三种导航结构。

分层导航(Hierarchical Navigation)

在每个页面都只做一次选择,直到到达目标页面。要想到达另外的目标页面,你必须重回之前的步骤或是从头开始重新选择。“设置(Settings)”和“邮件(Mail)”就是采用这种导航结构。


扁平导航(Flat Navigation)

在不同的内容类别间切换。“音乐(Music)”和“App商店(App Store)”就是采用这种导航结构。



内容驱动或是体验驱动式导航(Content-Driven or Experience-Driven Navigation)

在内容中自由地转换,或是内容本身定义导航。游戏、阅读以及其它沉浸式App一般都采用这种导航结构。



有的App结合了多种导航形式。例如,采用了扁平导航的 App 也可能在每个类别里使用分层导航。


始终提供清晰的路径:用户应该一直知道他处于App的什么位置,以及如何去往下一个目标页面。无论导航的样式如何,都应该确保内容间的路径是合理的、符合预期的并且容易追溯的。一般来说,每个页面只提供一条路径。如果他们需要在多个情景下看到某一屏的内容,那么考虑采用操作列表、警告框、弹出层或是模态框的形式来展示这些内容。

了解更多内容,请参阅Action Sheets, Alerts, Popovers, 和Modality


设计一个能够简单快速地访问内容的信息结构:合理地组织你的信息结构,保证只需要用最少次数的点击、滑屏和跳转就能访问相应的内容。

使用触摸手势来制造流畅感:让用户能轻松地在界面内跳转,而感受不到阻力。例如,你可以让用户在屏幕边界轻扫来返回到上一屏。

使用标准的导航组件:可能的话,使用标准的导航控件比如页面管理、底部栏、分段控件、表格视图、精选视图和分割视图。用户已经熟悉了这些控件,他们很自然地就知道如何玩转你的 App。

使用导航栏访问分层内容:导航栏内的标题能够显示当前的层级位置,使用返回按钮能够轻易地回到上一个位置。

了解更多指南,请参阅Navigation Bars。

使用底部栏来显示内容相符的类目或是功能模块:底部栏让用户能够快速简单地在不同类别中切换,而不受当前位置的限制。

了解更多指南,请参阅 Tab Bars

当有多个显示同类型的内容的页面时,请使用页面控件:页面控件能够清楚地表示总页数,以及当前所在页。“天气(Weather)”App就使用了页面控件来显示不同地理位置的天气页面。了解更多指导,请参阅developer.apple.com/iosPage Controls

提示:分段控件和工具栏不具备导航功能。使用分段控件能够将信息整理到不同的类别。使用工具栏可以为当前内容提供交互控件。

了解更多信息,请参阅developer.apple.com/iosSegmented Controls  Toolbars


2.5 用户引导(Onboarding)


App 的启动过程是你第一个接触和联系新老用户的时机。请设计一个快速、有趣并有启蒙意义的用户引导。


提供启动画面:在App打开时启动画面会在App加载初始内容的同时进行显示,让用户感觉你的App能够快速响应。因为这个画面很快就会被 App 的首页替代,所以除非出现有限制性的文字和可交互的元素外,它应该尽量与首页相似。

了解更多,请参阅 Launch Screen


选择适当的显示方向启动用户引导页面:如果你的App同时支持竖屏和横屏模式,那么应该以设备当前的方向启动。如果你的App只在一个方向运行,则应该始终以该方向启动,并让用户旋转设备来使用。除非有迫不得已的原因,否则无论设备是向左旋转还是向右旋转,处于横屏模式的App都应该正确地适配方向。

了解更多信息,请参阅Adaptivitydeveloper.apple.com/iosand Layout


快速响应:避免出现启动画面、菜单和说明时间过长,要让用户快速进入App。如果你的App需要教学或是介绍步骤,为用户提供一个跳过的选项,并且不要对老用户展示这些。

提前设想用户可能会需要的帮助:主动考虑用户何时会遇到麻烦。例如,一个游戏可以在暂停或是角色前进受阻时提供一些小秘籍。当用户错过启动画面时,让他们可以重新观看教程。

只在教程中展示最关键的内容:虽然为新用户提供引导没错,但是好的设计是不需要太多教学的,设计首先要确保App是易懂的。如果你的App需要过多的引导,那么请重新审视你的设计。

让学习过程变得有趣而且易于学习:让用户通过操作来学习比阅读一长串说明来的更有趣和有效。通过动效和交互循序渐进地教学。避免展示看起来似乎可以操作的屏幕截图作为教学说明。

避免在一开始就要求用户填写资料:用户会想要 App马上可以使用。App是为大多数人设计的,让少数想要更多服务的人,通过填写资料来满足更多需求。尽可能地从设备设置和默认设置,或者通过同步服务例如iCloud来获取信息。如果 App 必须要求用户填写资料,那么刚开始在 App 内提示用户,并让用户稍后在 App 设置中自行修改。

避免在App内显示接受许可协议和免责声明:在你的App被下载之前,直接在苹果商店显示接受许可协议和免责声明。如果你必须将这些东西放在你的App里,那么以一种自然的方式将其融入,避免干扰用户体验。

在你的App重新启动时,恢复之前已有的状态:不要让用户再操作一遍关闭或退出 App 之前的步骤。保存并且复原 App 的已有状态,这样用户就能继续上次他们未完成的操作了。

不要太快或是太频繁地要求用户对你的App评分:太快或是太频繁地要求评分会让人厌烦,并且会减少你收到的有用反馈的数量。为了鼓励填写有效的反馈,在要求评分之前,给用户足够的时间使用App。在评分时,始终提供“退出”的选项,并且永远都不要强迫用户对你的App进行评分。

不要鼓励重启:重新启动耗费时间,并且让你的App看起来既不可靠又不易用。如果你的App出现储存或者其它问题,导致它无法运行只能重启系统,那么你应该解决这些问题。


2.6 请求许可(Requesting Permission)


只有用户对App予以授权,App 才能获取用户的私人信息,比如当前位置、日历、联系人、提醒事项以及照片。虽然 App 获得这些信息后,用户使用起来会比较方便,但他们还希望能够掌控自己的私人数据。比如,用户希望能够根据实际位置自动标记照片,或是寻找附近的朋友,但是他们又同时希望能有关闭这些功能的选项。


只有在App确实需要获取私人信息时,再向用户发起请求:用户自然会质疑获取个人信息的目的,尤其是他们发现当前的请求没有什么必要时。确保授权请求只出现在用户使用某些需要个人数据的功能时才出现。比如,一个 App 只有在启用位置跟踪的功能时,再请求获得当前位置。

当需求不明显时,向用户解释为什么你的App需要这些信息:你可以在系统提供的授权请求警告框上添加自定义文本。使用明确且有礼貌的文本,这样用户就不会感到有压力。保证文本言简意赅,并且注意段落要求和首字母大小写等问题。没有必要包含你的 App 名字,系统已经替你在警告框上写明了App 名称。

在 App 一启动时就请求授权那些对运行 App 至关重要的信息:如果用户明确地知道你的App只有获取这些个人信息才能运行,那么他们就不会反感。

不要随便请求位置信息:在获得位置信息之前,检查系统以查看位置服务是否已经被启用。使用这个方案,可以延迟提醒,直到使用需要获取该信息的功能时才进行提醒,甚至可能完全避免提醒。

学习如何实现定位功能,请参阅 Location and Maps Programming Guide


2.7 设置


有些App可能需要一开始就让用户决定设置或配置选项,但是大部分App可以避免或是延迟这些操作。成功的App能够一开始就让大多数用户流畅的使用,并且同时提供了一个便捷的方式去调整体验。当你设计的App满足大部分用户的需求,就可以减少他们对设置的操作了。


推断你可以从系统中得到什么:如果你需要关于用户、设备或是环境的信息,那么尽可能地向系统请求而不是直接询问用户。比如,如果你想要知道用户的邮编来提供本地化的选项时,可以向用户请求获取他们的当前位置(译者注:系统会自动根据位置生成右边,电话的区号同理)。

慎重地考虑设定选项的优先级:App 设置主界面是一个放置关键或时常变更选项的合理位置,如果权重不是特别高的选项应该将它们安排到次要页面中。

把不经常更改的选项放到系统设置里:设置(Settings)App 是更改系统配置的核心地带,但是用户必须离开App才能到达。因此在你的App中直接改变设置会更加方便。

如果你的App必须提供很少需要改动的设置选项,请参阅 Preferences and Settings Programming Guide 中的 Implementing an iOS Settings Bundle 部分。


适时的提供通往“设置”的快捷方式:如果你的App包含引导用户前往设置的文本,比如 “去设置>我的App>隐私>定位服务”,请提供一个能够自动打开该界面的按钮。


0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,637人)

电商海报设计训练营
距离开班仅剩9天66人已报名
【5月】零基础手绘插画训练营
距离开班仅剩9天56人已报名
【5月】零基础动态表情包创作训练营
距离开班仅剩26天15人已报名
猜你喜欢
一篇帮你搭建从UI到UX设计超全知识体系

2021-03-10

Nana的设计锦囊 发表

一篇帮你搭建从UI到UX设计超全知识体系
[译文] 如何设计图表色彩

2018-08-03

ZYuhan 发表

[译文] 如何设计图表色彩
增长思维做设计

2020-07-31

峻溪POINTVISION 发表

增长思维做设计
如何跨行业找参考?

2019-12-12

葱爷 发表

如何跨行业找参考?
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了27,078
并提交了210份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证